এই অধ্যায়ে আপনি সি প্রোগ্রামিং এ ইউজার ডিফাইন্ড এবং স্টান্ডার্ড লাইব্রেরী উভয় ফাংশনের সঙ্গে পরিচিত হবেন। এছাড়া আপনি প্রোগ্রামিং এর ফাংশন ব্যবহার শিখবেন।
ফাংশন হলো ব্লক অব কোড(block of code) যা কোনো নির্দিষ্ট কার্য সম্পাদন করে।
ধরুন, একটি গ্রাফিক্স প্রোগ্রাম তৈরি করতে একটি বর্গ, একটি বৃত্ত এবং কিছু কালারের প্রয়োজন যা ইউজার কর্তৃক যথাক্রমে দৈর্ঘ্য, ব্যাসার্ধ এবং কালারের উপর নির্ভর করে। এই সমস্যা সমাধান করতে আপনি তিনটি ফাংশন ব্যবহার করতে পারেন।
- বর্গ ফাংশন
- বৃত্ত ফাংশন
- কালার ফাংশন
বড় বড় সমস্যাগুলো ক্ষুদ্র ক্ষুদ্র অংশে বিভক্ত করলে প্রোগ্রাম বুঝতে এবং ডেভেলপ করতেও সহজ হয়।
ইউজার কর্তৃক সংজ্ঞায়িত ফাংশন এবং কম্পাইলারে ইতিমধ্যে বিদ্যমান ফাংশনের উপর ভিত্তিকরে সি প্রোগ্রামিং এ দুই ধরণের ফাংশন রয়েছে। যথাঃ
সি প্রোগ্রামিং এ স্টান্ডার্ড লাইব্রেরী ফাংশন হলো পূর্ব নির্ধারিত ফাংশন বা সি এর নিজস্ব ফাংশন যা দ্বারা গাণিতিক হিসাব-নিকাশ, ইনপুট-আউটপুট প্রোসেসিং, স্ট্রিং হ্যান্ডলিং ইত্যাদি কার্য সম্পাদন করা যায়।
এই ফাংশনগুলো হেডার ফাইলে ডিফাইন্ড করা থাকে। ঐ সব হেডার ফাইলকে যখন কোনো প্রোগ্রামে সংযুক্ত করা হয় তখন এই ফাংশনগুলো সোর্স কোডে নিজস্ব ফাংশনের ন্যায় কাজ করে। উদাহরনস্বরুপঃ
printf()
হলো স্টান্ডার্ড লাইব্রেরী ফাংশন যা স্ক্রিনে ফরম্যাটেড আউটপুট পাঠায়। এই ফাংশনটি "stdio.h"
হেডার ফাইলে ডিফাইন্ড করা থাকে।
এছাড়া আরো অনেক ফাংশন রয়েছে যেগুলো "stdio.h"
হেডার ফাইলে ডিফাইন্ড করা থাকে যেমন- scanf()
, getchar()
, fprintf()
ইত্যাদি। যখন-ই আপনি "stdio.h"
হেডার ফাইলকে আপনার প্রোগ্রামে সংযুক্ত করবেন তখন-ই এই ফাংশনগুলো আপনার প্রোগ্রামের জন্য সচরাচর হয়ে যাবে।
আরোও জানতে সি প্রোগ্রামিং এর স্টান্ডার্ড লাইব্রেরী ফাংশন অধ্যায় ভিজিট করুন।
ইতিমধ্যেই উল্লেখ করা হয়েছে যে, সি প্রোগ্রামিং ফাংশন ডিফাইনে সম্মতি দিয়ে থাকে। এই ফাংশনগুলো ইউজার কর্তৃক ডিফাইন্ড করা হয় বলে এগুলোকে ইউজার ডিফাইন্ড ফাংশন বলা হয়।
প্রোগ্রামের দাবি এবং জটিলতার উপর ভিত্তিকরে আপনি যত ইচ্ছা ফাংশন ডিফাইন্ড করতে পারেন।
#include <stdio.h> void userDefinedFunction() { ... .. ... ... .. ... } int main() { ... .. ... ... .. ... userDefinedFunction(); ... .. ... ... .. ... }
সি প্রোগ্রামের এক্সিকিউশন শুরু হয় main()
ফাংশন থেকে।
কম্পাইলার যখন userDefinedFunction();
ফাংশনের দেখা পায় তখন প্রোগ্রামের নিয়ন্ত্রণ লাফ দিয়ে void userDefinedFunction()
এর কাছে যায়।
কম্পাইলার তখন ইউজার ডিফাইন্ড ফাংশনের কোডসমূহ এক্সিকিউশন করা শুরু করে।
ইউজার ডিফাইন্ড ফাংশনের কোডসমূহ এক্সিকিউশন সম্পন্ন হলে প্রোগ্রামের নিয়ন্ত্রণ পূনরায় লাফ দিয়ে main()
ফাংশনের userDefinedFunction();
এর কাছে চলে আসে।
মনে রাখবেন, ফাংশনের নাম হলো আইডেন্টিফায়ার যা অবশ্যই ইউনিক হতে হবে।
ইহা ইউজার ডিফাইন্ড ফাংশনের ওভারভিউ। আরো জানতে নিচের পেজসমূহ ভিজিট করুনঃ
- প্রোগ্রাম বুঝা, রক্ষণাবেক্ষণ এবং ডিবাগিং করা সহজ হয়ে যায়।
- পূনর্ব্যবহারযোগ্যতা বৃদ্ধি পাওয়ায় অন্যান্য প্রোগ্রামেও কোড ব্যবহার করা যায়।
- বড় প্রোগ্রাম ক্ষুদ্র ক্ষুদ্র মডিউলে বিভক্ত করা যায়। সুতরাং বড় প্রোজেক্টকে অনেক প্রোগ্রামারের কাছে ভাগ করে দেওয়া যায়।
common.read_more